Vivado使用: 综合选项设置 转载

您所在的位置:网站首页 vivado 使用include Vivado使用: 综合选项设置 转载

Vivado使用: 综合选项设置 转载

2023-06-14 22:40| 来源: 网络整理| 查看: 265

目录

-flatten_hierarchy (影响综合结果的层次) -gated_clock_conversion -fsm_extraction (影响状态机编码方式) -fsm_encoding Keep_equivalent_registers (含义) -resource_sharing (影响算术运算) -control_set_opt_threshold (影响触发器控制集) -no_lc (影响LUT资源) -shreg_min_size (影响移位寄存器) -bufg -fanout_limit -directive -max_bram -max_dsp -cascase_dsp

Synthesis setting Vivado开发套件的综合设置中提供了一系列的综合选项,这些综合选项对综合的结果有着潜在的影响,运行综合时可利用这些 综合选项 来对综合的设计进行综合。常用的选项都可以在下图菜单中设置。

图1综合选项 -flatten_hierarchy (影响综合结果的层次) 该选项决定了Vivado综合工具将如何控制层次结构

full 指示工具完全展平层次结构,只留下顶层。只保留顶层层次,执行边界优化 none 指示综合工具从不展平层次结构。 综合后的输出具有与原始RTL相同的层次结构。不执行边界优化 rebuilt: rebuilt允许综合工具展平层次结构,执行综合,然后根据原始RTL重建层次结构。 此值允许跨边界优化的QoR优势,最终层次结构与RTL类似,便于分析。即综合时将原始设计打平,执行边界优化,综合后将网表文件按照原始层次显示,故与原始层次相似。 创建3个综合运行(Design Runs):synth_1、synth_2、synth_3,将三者的flatten_hierarchy分别设置为full、none、rebuilt。

创建方法见综合篇():Global和OCC综合模式。

综合结果分别如下所示:

三种综合结果的资源利用率报告:

对比可发现,当-flatten_hierarchy为none时消耗的寄存器最多,建议其设定为默认值rebuilt。

flatten_hierarchy是一个全局的综合指导原则,即它是对整个工程所有模块起作用而不是仅仅某一个模块。如果需要对某一个模块进行层次化管理,则需要用到综合属性:keep_hierarchy了。(详见综合属性章节)

(keep_hierarchy = “yes”) module module_name ( /*

接口信号 */

);

endmodule -gated_clock_conversion 打开和关闭综合工具转换时钟逻辑的能力。使用门控时钟转换还需要使用RTL属性才能工作。 后面将介绍RTL属性GATED_CLOCK。

-fsm_extraction (影响状态机编码方式) 该选项主要对状态机的编码方式有影响,默认值为auto,此时vivado会自动推断最佳的编码方式。

在wavegen工程中,fsm_extraction选项选择auto如此综合后的设计中,在下方Log窗口中CRTL+F搜索encoding,结果如下:

可看出该状态机编码方式为sequential。而previous Encoding是什么呢,这是因为cmd_pase模块本身已经设定了编码方式了。

【注意】

-fsm_extraction设定为one-hot时,综合后的结果编码方式就是独热码。也就是说,-fsm_extraction设定的编码方式优先级高于HDL代码中定义的编码方式。

与-fsm_extraction综合选项功能一样的,还有综合属性,即-fsm_encoding。

-fsm_encoding 该综合属性可以针对某个状态机设定编码方式(体会综合选项和综合属性功能的异同,应用场合)。 综合属性 -fsm_coding的优先级高于综合选项-fsm_extraction,但如果代码本身已经定义了编码方式,该设定将无效。

有意思的是 综合选项fsm_extraction高于HDL代码定义的编码方式,而综合属性fsm_coding优先级高于综合选项fsm_extraction,HDL代码中定义编码了却能让综合属性失效。 现在有个问题是:假如三个方式全部都定义,且定义了不同的编码方式,哪一个会生效呢?? 答:关于这个问题,在问题一栏中做了尝试。

Keep_equivalent_registers (含义) equivalent registers即等效寄存器,是指具有同源的寄存器,即共享输入数据的寄存器。勾选时,等效寄存器不会合并;不勾选时,等效寄存器会被合并。

示例:

// always@(posedge clk) begin

opa_rx


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3